const fs = require('fs');
const path = require('path');
const { Pool } = require('pg');

// 创建数据库连接池
const pool = new Pool({
  user: 'postgres',
  host: 'localhost',
  database: 'math', // 连接到默认数据库
  password: '123456',
  port: 5432,
});

async function initDb() {
  try {
    // 创建数据库
    await pool.query(`
      SELECT 'CREATE DATABASE math'
      WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'math')
    `);

    console.log('确保数据库存在...');

    // 关闭与默认数据库的连接
    await pool.end();

    // 连接到新创建的数据库
    const userAuthPool = new Pool({
      user: 'postgres',
      host: 'localhost',
      database: 'math', // 连接到新创建的数据库
      password: '123456',
      port: 5432,
    });

    // 读取并执行schema.sql文件
    const schemaSQL = fs.readFileSync(path.join(__dirname, 'schema.sql'), 'utf8');
    await userAuthPool.query(schemaSQL);

    console.log('数据库表结构创建成功！');

    // 关闭连接
    await userAuthPool.end();

  } catch (err) {
    console.error('初始化数据库时出错:', err);
    process.exit(1);
  }
}

// 执行初始化
initDb(); 